package alt.djudge.frontend.client.rpc;

import alt.djudge.frontend.shared.dto.contest.ContestInfoDTO;
import alt.djudge.frontend.shared.dto.contest.ContestProblemInfoDTO;
import alt.djudge.frontend.shared.dto.contest.LanguageInfoDTO;
import alt.djudge.frontend.shared.dto.contest.ProblemStatementInfoDTO;

import com.google.gwt.user.client.rpc.AsyncCallback;


public interface DJudgeGWTContestServiceAsync
{
	void getProblems(Long contestId, AsyncCallback<ContestProblemInfoDTO[]> callback);

	void getStatements(Long contestProblemId,
			AsyncCallback<ProblemStatementInfoDTO[]> callback);

	void getLanguages(Long contestId, AsyncCallback<LanguageInfoDTO[]> callback);

	void getContestInfo(Long contestId, AsyncCallback<ContestInfoDTO> callback);

	void submitSolution(Long contestId, Long contestProblemId, Long languageId,
			String sourceCode, AsyncCallback<Integer> callback);
}
